package com.lrkj.workorder.service;

import java.util.List;
import java.util.Map;

import com.lrkj.workorder.domain.WorkOrder;
import com.lrkj.common.core.service.BaseService;
import com.lrkj.workorder.domain.WorkOrderLog;
import com.lrkj.workorder.domain.vo.WorkOrderVo;
import sun.security.util.UntrustedCertificates;

/**
 * 工单管理Service接口
 *
 * @author yajun_ren
 * @date 2022-04-21
 */
public interface IWorkOrderService extends BaseService<WorkOrder>
{
    /**
     * 查询工单管理
     *
     * @param id 工单管理ID
     * @return 工单管理
     */
    public WorkOrder selectWorkOrderById(String id);

    /**
     * 查询工单管理列表
     *
     * @param workOrder 工单管理
     * @return 工单管理集合
     */
    public List<WorkOrder> selectWorkOrderList(WorkOrder workOrder);

    /**
     * 新增工单管理
     *
     * @param workOrder 工单管理
     * @return 结果
     */
    public int insertWorkOrder(WorkOrder workOrder);

    /**
     * 修改工单管理
     *
     * @param workOrder 工单管理
     * @return 结果
     */
    public int updateWorkOrder(WorkOrder workOrder);

    /**
     * 批量删除工单管理
     *
     * @param ids 需要删除的工单管理ID
     * @return 结果
     */
    public int deleteWorkOrderByIds(String[] ids);

    /**
     * 删除工单管理信息
     *
     * @param id 工单管理ID
     * @return 结果
     */
    public int deleteWorkOrderById(String id);

    //派单
    public int sendOrders(WorkOrder workOrder);

    //催办
    public int urgeOrder(WorkOrder workOrder);

    //协办
    public int jointlyOrder(WorkOrder workOrder);


    //办结
    public int conCludeOrder(WorkOrder workOrder);

    //回访
    public int returnOrder(WorkOrder workOrder);

    //转交
    public int careOrder(WorkOrder workOrder);

    //取消
    public int chargebackOrder(WorkOrder workOrder);


    //挂单
    public int suspendOrder(WorkOrder workOrder);


    //取消挂单
    public int endSuspendOrder(WorkOrder workOrder);

    //返修
    public int repairOrder(WorkOrder workOrder);


    public List<WorkOrder> selWorkOrderAll(WorkOrder workOrder);

    //退单
    public int retreatOrder(WorkOrder workOrder);

    List<WorkOrder> indexShow(String time);


    /**
     * 根据状态统计数量
     * @return
     */
    List<WorkOrderVo> selCountByStatus();
}
